/**
 * 仿写JSON内置API 的parse语法
 * @param {string}  javaData JSON数据格式
 * @returns object
 */


 function parse(javaData){
    // 1.去掉【" {}  空格 】=》 找到一个换一个,得到字符串
    let str=javaData.replace(/("|{|}|\s)/g,'')
    
    // 2.字符串转数组,安装【，】分割  根据,为分界点 分隔
    let arr=str.split(',')
    // console.log(arr);  // ['a:1', 'b:2']
    // 3.遍历上面:定义空对象
    let obj={}
    // 4.遍历 item='a:1' i=0
    arr.forEach((item,i)=>{
        // 4.1.把item按照[:]分隔
        let temp=item.split(':')  //['a','1','b','2']
        console.log(temp);  // ['a', '1']['b', '2']
        // 4.2数组的第一个值就是键  数组的第二个值就是值
        // 如果不是数字,就带引号,(原来就是带引号的)
        obj[temp[0]]=isNaN(Number(temp[1])) ? temp[1] :Number(temp[1])
    
    })
    
    return obj
    
    }
    
    
    /** 
     * 仿写JSON内置API 的stringify语法
     * @param {object}  obj  标准普通对象
     * @returns string
     */
    
    function stringify(obj){
    // 1.定义空数组
    let arr=[]
    // 2.遍历对象 将[键:值]push到数组中
    for(let key in obj){
        // key 就是a,b  obj[key]就是1,2
        arr.push(`"${key}":${obj[key]}`)
    }
    console.log(arr);  //['"a":1', '"b":2']
    
    // 3.数组变字符串
    let str=`'{${arr.join(',')}}'`
    // console.log(str);//'{"a":1,"b":2}'
    return str
    }
    
    
    

